package config

import (
	"fmt"

	"github.com/fsnotify/fsnotify"
	"github.com/spf13/viper"
	"go.uber.org/zap" // 引入 zap 日志库
)

// WatchConfigChanges 监听配置变化
func WatchConfigChanges() error {
	viper.WatchConfig()
	viper.OnConfigChange(func(e fsnotify.Event) {
		zap.L().Info("Config file changed", zap.String("file", e.Name))
		// Handle config change if necessary
	})

	// 检查 viper 初始化时是否有错误
	if err := viper.ReadInConfig(); err != nil {
		return fmt.Errorf("failed to read config: %w", err)
	}

	return nil
}
